﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Volo.Abp.Application.Dtos;
using WisDom.SmartTMS.Enums;

namespace WisDom.SmartTMS.Dto
{
    /// <summary>
    /// 承运合同
    /// </summary>
    public class TMSContractCarrierDto : EntityDto<Guid>
    {
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人Id
        /// </summary>
        [Required(ErrorMessage ="创建人Id不能为空")]
        public Guid? CreatorId { get; set; }

        /// <summary>
        /// 否已删除
        /// </summary>
        public Boolean Deleted { get; set; }

        /// <summary>
        /// 合同编号
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "合同编号不能为空")]
        public string ContractNum { get; set; }

        /// <summary>
        /// 合同标题
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "合同标题不能为空")]
        public string ContractTitle { get; set; }

        /// <summary>
        /// 对方单位
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "对方单位不能为空")]
        public string CarriageUnit { get; set; }

        /// <summary>
        /// 对方负责人
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "对方负责人不能为空")]
        public string CarriageMan { get; set; }

        /// <summary>
        /// 线路
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "线路不能为空")]
        public string Line { get; set; }

        /// <summary>
        /// 吨运价
        /// </summary>
        [Required(ErrorMessage = "吨运价不能为空")]
        public decimal FreightRates { get; set; }

        /// <summary>
        /// 包车条件吨位
        /// </summary>
        [Required(ErrorMessage = "包车条件不能为空")]
        public int CharterConditionTonnage { get; set; }

        /// <summary>
        /// 包车金额
        /// </summary>
        public decimal CharterValue { get; set; }

        /// <summary>
        /// 签订时间
        /// </summary>
        public DateTime SignedTime { get; set; }

        /// <summary>
        /// 经办人
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "经办人不能为空")]
        public string Operator { get; set; }

        /// <summary>
        /// 合同金额
        /// </summary>
        public decimal ContractMoney { get; set; }

        /// <summary>
        /// 合同标的或项目说明
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "项目说明不能为空")]
        public string ProjectDescription { get; set; }

        /// <summary>
        /// 合同主要条款/变更条款
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "合同条款不能为空")]
        public string MainClause { get; set; }

        /// <summary>
        /// 附件地址
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "附件地址不能为空")]
        public string Accessory { get; set; }

        /// <summary>
        /// 审批状态
        /// </summary>
        public AuditState State { get; set; }

        /// <summary>
        /// 审批人
        /// </summary>
        [StringLength(20)]
        [Required(ErrorMessage = "审批人不能为空")]
        public string Approver { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(100)]
        [Required(ErrorMessage = "备注不能为空")]
        public string Remark { get; set; }
    }
}

